define(['SelectInput'],function(SelectInput){
	// checkbox
	var TimeInput=function (initConfig){
		initConfig=initConfig||{};
		var timeInput=this;

		timeInput.config={};

		timeInput.config.hourtText=$.getDefined(initConfig.hourText,'时');
		timeInput.config.minuteText=$.getDefined(initConfig.minuteText,'分');

		timeInput.config.hourNumberOption=$.getDefined(initConfig.hourNumberOption,{
			min:0,
			max:23,
			interval:1
		});
		timeInput.config.minuteNumberOption=$.getDefined(initConfig.minuteNumberOption,{
			min:0,
			max:55,
			interval:5
		});
		timeInput.config.hourWidth = $.getDefined(initConfig.hourWidth, 60);


		timeInput.$dom=$('<span data-type="timeinput"></span>');




		timeInput.hourSelectInput=new SelectInput({
			inputStyle:{
				width:timeInput.config.hourWidth
			},
			numberOption:timeInput.config.hourNumberOption
		});
		timeInput.minuteSelectInput=new SelectInput({
			inputStyle:{
				width:60
			},
			numberOption:timeInput.config.minuteNumberOption
		});

		timeInput.hourSelectInput.$dom.appendTo(timeInput.$dom);
		timeInput.$dom.append('&nbsp;'+timeInput.config.hourtText+'&nbsp;')
		timeInput.minuteSelectInput.$dom.appendTo(timeInput.$dom);
		timeInput.$dom.append('&nbsp;'+timeInput.config.minuteText)

		timeInput.value=function(newHour,newMinute){
			if(newHour===undefined || newMinute===undefined){
				return (timeInput.hourSelectInput.value()*60+timeInput.minuteSelectInput.value()*1)*60*1000;
			}else{
				timeInput.hourSelectInput.value(newHour);
				timeInput.minuteSelectInput.value(newMinute);
			}
		}
		if(initConfig.autoTimeout!==false){
			var defaultData=$.newDate();
			var defaultHour=defaultData.getHours();
			var defaultMinute=defaultData.getMinutes();
			defaultMinute=Math.ceil((defaultMinute+(initConfig.autoTimeout||0))/5)*5;
			if(defaultMinute>=60){
				defaultHour+=1;
				defaultMinute=defaultMinute%60;
			}
			if(defaultHour>=24){
				defaultHour=defaultHour%24;
			}
			timeInput.value(defaultHour,defaultMinute)
		}
	}
	window.TimeInput=TimeInput;
	return TimeInput;
})
